#include <iostream>
#include <unistd.h>
#include <string>
#include <cassert>
#include <string.h>
using namespace std;

int main()
{
    // 创建管道
    int myfd[2] = {0};
    int n = pipe(myfd);
    // 创建进程
    int id = fork();

    if (id > 0)
    {

        char str[1024] = "i am father";
        // 关闭fd
        close(myfd[0]);
        int n = write(myfd[1], str, strlen(str));
        exit(0);
    }

    // 子进程
    close(myfd[1]);
    char buf[1024];
    while(true)
    {

        int n = read(myfd[0], buf, sizeof(buf) - 1);
        if (n > 0)
        {
            cout << "已经收到父进程信息：" << buf << endl;
        }
    }

    close(myfd[0]);

    return 0;
}